package com.movie.ticket.sale.provide;


import com.movie.ticket.sale.moviecommon.common.Result;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * @author： Micsal
 * @create-time： 2020.12.04 16:02
 * @version： 1.0
 * @description： 票务微服务
 */

public interface MovieTicket {

    //========================== 订单查询 ==========================================================

    /**
     * 查询购票订单
     */
    @GetMapping("/order/ticket/query")
    Result orderTicketQuery(int currentPage, int pageSize, Map<String, Object> condition);


    /**
     * 查询充值会员订单
     */
    @GetMapping("/order/vip/query")
    Result orderVipQuery(int currentPage, int pageSize, Map<String, Object> condition);


    /**
     * 查询年费缴纳订单
     */
    @GetMapping("/order/annual/query")
    Result orderAnnualQuery(int currentPage, int pageSize, Map<String, Object> condition);


    //========================= 支付 =================================================================

    /**
     * 生成订单，发起支付
     */
    @PostMapping("/aliPay")
    Result aliPay(String body, String tradeNo, String subject, double totalAmount);


    /**
     * 支付宝异步回调
     */
    @RequestMapping("/aliPayNotifyUrl")
    String aliPayNotifyUrl(String out_trade_no, String trade_no, String trade_status);


    /**
     * 支付宝同步回调
     */
    @RequestMapping("/aliPayReturnUrl")
    String aliPayReturnUrl(String out_trade_no, String trade_no, String trade_status);

    /**
     * 支付宝退款
     */
    @RequestMapping("/refund")
    Result refund(String out_trade_no, double x);

    //============================================ 评论 ============================================================

    /**
     * 添加评论
     */
    @PostMapping("/comment/add")
    Result addComment(MultipartFile[] files, double[] score, String comment);//lyl


    /**
     * 查询评论
     */
    @GetMapping("/comment/query")
    Result queryComment(int currentPage, int pageSize, Map<String, Object> condition);//lyl


    //========================= 投诉 ===========================================================================

    /**
     * 添加投诉
     */
    @PostMapping("/complain/add")
    Result addComplain(MultipartFile[] files, double[] score, String comment);//lyl


    /**
     * 查询投诉
     */
    @GetMapping("/complain/query")
    Result queryComplain(int currentPage, int pageSize, Map<String, Object> condition);//lyl


    //================================= 座位 ==========================================================

    /**
     * 添加座位
     */
    @PostMapping("/set/add")
    Result addSet(String sets);


    /**
     * 获取座位信息
     * 获取座位状态
     * 返回座位信息
     */
    @GetMapping("/set/query")
    Result querySet(int peridId);


}
